package com.baizhi.aspect;//package com.baizhi.aspect;
//
//import org.aspectj.lang.ProceedingJoinPoint;
//import org.aspectj.lang.annotation.*;
//import org.springframework.context.annotation.Configuration;
//
///**
// * @Aspect 定义当前类为切面类
// *
// * @Configuration 定义当前类为配置类
// */
//@Aspect
//@Configuration
//public class TestAop {
//
//    /**
//     * @After 定义当前方法为后置增强
//     * @Before 前置增强
//     * @Around 环绕增强
//     *
//     * 注解的参数为 切点表达式（定义切入点）
//     */
//    @After("execution(* com.baizhi.service.*.*(..))")
//    public void testAfter(){
//        System.out.println("这是一个后置增强");
//    }
//
//    /**
//     * 环绕增强  需要在增强中对别切的方法执行放行操作
//     *
//     * 1.必须有返回值
//     * 2.必须执行proceed
//     *
//     * 增强方法必须有返回值
//     */
//    @Around("execution(* com.baizhi.service.*.*(..))")
//    public Object testAround(ProceedingJoinPoint joinPoint) throws Throwable {
//        System.out.println("环绕增强执行前");
//        /**
//         * proceed() 类似于invoke方法  如果没有这个方法
//         * 被切入的业务方法不会执行
//         *
//         * 如果没有返回值 业务方法也不会有返回值
//         *
//         * 被切入的业务方法 有没有返回值无所谓
//         */
//        Object proceed = joinPoint.proceed();
//        System.out.println("环绕增强执行后");
//
//        return proceed;
//    }
//}
